1. Field of the Invention
The present invention relates to systems and methods for data processing, and in particular to a system and method for monitoring data processing jobs and for reporting job progress to interested parties.
2. Description of the Related Art
Large-scale integrated database management systems provide an efficient, consistent, and secure means for storing and retrieving vast amounts of data. This ability to manage massive amounts of information has become a virtual necessity in business today.
Typically, queries directed to these databases are submitted as database jobs submitted by a company""s management information systems (MIS) department. In many cases, these jobs are sufficiently large and complex so that even under ideal circumstances, the job will not be completed for a substantial period of time. In many cases, to preserve computer resources, these jobs are typically submitted when other data processing requirements are low, i.e. evenings and weekends.
Database jobs often stop due to blocks. Blocks are a resource contention problem that occurs when a job blocks other jobs from execution until its processing is completed. The processing of database jobs may also be substantially slowed because of inefficient query design or unexpected delays in accessing data necessary to perform the search. Unfortunately, the user is given no indication that the processing has stopped, or is taking longer than expected. The result is that the database job can remain in the state for an extended period of time. Eventually, a job operator may notice that the database job has been running for too long, and embark on an investigation into the matter. However, by the time the operator takes action, the batch schedule for other database jobs can be severely impacted. Further, if the individual submitting the database job was informed of the problem in a more timely manner, changes to the database request could have been made which would have expedited processing and avoided a needless waste of time and data processing resources.
What is needed is a system which informs the database management system operator and/or the person submitting the job to be informed of the jobs progress. This allows the problem to be timely corrected and the impact upon the batch schedule to be reduced. The present invention satisfies that need with a system and method for allowing the database job itself to inform the operator, other person, or the submitting application to be timely informed of the database job""s progress.
To address the requirements described above, the present invention discloses a method, apparatus, and article of manufacture for monitoring and raising alerts for database jobs.
The method begins by generating and submitting a monitoring request associated with the data process. The monitoring request comprises an action time and action information comprising an action code and an action destination. The monitoring request is accepted and stored in a monitor request data structure. In one embodiment, the monitoring request is stored as a row in a table in a relational database management system. The monitoring request is repeatedly processed over a selectable interval to determine if the action time is earlier than the current time. When the action is earlier than the current time and the submitting data process has not completed, a function in a DLL is called which reads information describing the action to be taken. Based upon the information so read, a function for performing that action is called. Candidate actions include sending a page to a specific number, sending an e-mail message to the operator or the job submitter, raising a simple network management protocol (SNMP) trap that can be used by a centralized SNMP system, running a user-provided or specified application, or any definable action. The submitting data process repeatedly inserts new monitoring requests at selected intervals, and if no updated monitoring request is received by an expected time provided in the previous monitoring request, an appropriate action is initiated. This design allows the submitting data process additional control over the notification process, and simplifies the design of the software modules implementing the alert-raising functions by relieving them of the responsibility of keeping track of multiple database jobs. In another embodiment, the present invention comprises a program storage device tangibly embodying a series of instructions for performing the method steps described above.
In another embodiment, the present invention is described by an apparatus for monitoring a data process. The apparatus comprises a means for accepting a monitoring request with an action data and an action code for the data process, a memory for storing and retrieving the monitoring request in a row of a table stored in a relational database management system. An alert control module is provided, which periodically processes the monitor request table to determine if an action as characterized by the action code should be taken. Typical action codes are the character xe2x80x9cPxe2x80x9d for paging, and a character xe2x80x9cExe2x80x9d for an e-mail. The invention also comprises an alert action module which commands the action specified by the action code when indicated by the alert control module. Detailed specifics regarding the action, such as what the action is, who messages are to be sent to, and the data required for performing these actions are stored as a row in an alert action table in the relational database.
The foregoing allows the submitting user or application, or the database management system operator to be informed of the progress of database jobs. If problems arise, the database jobs can be taken offline or altered as required.